package com.xzxy.xmlg_backend.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelEntity;
import cn.afterturn.easypoi.excel.annotation.ExcelIgnore;
import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 员工表
 * </p>
 *
 * @author 周毅盛
 * @since 2025-06-10
 */
@ApiModel(value = "Emp对象", description = "员工表")
@ExcelTarget("Emp")
@Data
public class Emp implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @ApiModelProperty("ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 用户名
     */
    @ApiModelProperty("用户名")
    @Excel(name = "用户名")
    private String username;

    /**
     * 密码
     */
    @ApiModelProperty("密码")
    @Excel(name = "密码")
    private String password;

    /**
     * 姓名
     */
    @ApiModelProperty("姓名")
    @Excel(name = "姓名")
    private String name;

    /**
     * 性别, 说明: 1 男, 2 女
     */
    @ApiModelProperty("性别, 说明: 1 男, 2 女")
    @Excel(name = "性别", replace = {"男_1", "女_2"})
    private Byte gender;

    /**
     * 图像
     */
    @ApiModelProperty("图像")
    private String image;

    /**
     * 职位, 说明: 1 班主任,2 讲师, 3 学工主管, 4 教研主管, 5 咨询师
     */
    @ApiModelProperty("职位, 说明: 1 班主任,2 讲师, 3 学工主管, 4 教研主管, 5 咨询师")
    @Excel(name = "职位")
    private Byte job;

    /**
     * 入职时间
     */
    @ApiModelProperty("入职时间")
    @Excel(name = "入职时间", format = "yyyy-MM-dd") // 假设日期格式为 yyyy-MM-dd，如果模板中格式不同，需要相应修改
    private LocalDate entrydate;

    /**
     * 部门ID
     */
    @ApiModelProperty("部门ID")
    @Excel(name = "部门ID")
    private Byte deptId;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    @ApiModelProperty("修改时间")
    private LocalDateTime updateTime;


    public void setDeptId(Double d) {
        this.deptId = d == null ? null : d.byteValue();
    }

    public void setJob(Double d) {
        this.job = d == null ? null : d.byteValue();
    }

    public void setGender(Double d) {
        this.gender = d == null ? null : d.byteValue();
    }
}
